﻿// AtlPropertyPage.h: CAtlPropertyPage 的声明

#pragma once
#include "resource.h"       // 主符号



#include "AtlTest_i.h"



#if defined(_WIN32_WCE) && !defined(_CE_DCOM) && !defined(_CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA)
#error "Windows CE 平台(如不提供完全 DCOM 支持的 Windows Mobile 平台)上无法正确支持单线程 COM 对象。定义 _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA 可强制 ATL 支持创建单线程 COM 对象实现并允许使用其单线程 COM 对象实现。rgs 文件中的线程模型已被设置为“Free”，原因是该模型是非 DCOM Windows CE 平台支持的唯一线程模型。"
#endif

using namespace ATL;


// CAtlPropertyPage

class ATL_NO_VTABLE CAtlPropertyPage :
	public CComObjectRootEx<CComSingleThreadModel>,
	public CComCoClass<CAtlPropertyPage, &CLSID_AtlPropertyPage>,
	public IDispatchImpl<IAtlPropertyPage, &IID_IAtlPropertyPage, &LIBID_AtlTestLib, /*wMajor =*/ 1, /*wMinor =*/ 0>,
    public CDialogImpl<CAtlPropertyPage>,
    public IPropertyPageImpl<CAtlPropertyPage>
{
public:
	CAtlPropertyPage()
	{
        m_dwTitleID = IDS_STRING_PAGE1;
	}

    enum
    {
        IDD = IDD_DIALOG_PAGE1
    };

DECLARE_REGISTRY_RESOURCEID(106)


BEGIN_COM_MAP(CAtlPropertyPage)
	COM_INTERFACE_ENTRY(IAtlPropertyPage)
	COM_INTERFACE_ENTRY(IDispatch)
	COM_INTERFACE_ENTRY(IPropertyPage)
END_COM_MAP()

BEGIN_MSG_MAP(CAtlPropertyPage)
	CHAIN_MSG_MAP(IPropertyPageImpl<CAtlPropertyPage>)
    COMMAND_HANDLER(IDC_EDIT_STRING, EN_CHANGE, OnEnChangeEdit)
END_MSG_MAP()



	DECLARE_PROTECT_FINAL_CONSTRUCT()

	HRESULT FinalConstruct()
	{
		return S_OK;
	}

	void FinalRelease()
	{
	}

public:
    virtual HRESULT STDMETHODCALLTYPE Apply();

public:
    LRESULT OnEnChangeEdit(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);

};

OBJECT_ENTRY_AUTO(__uuidof(AtlPropertyPage), CAtlPropertyPage)
